/**
 * <p>Copyright (c) 2017 深圳市鹏途交通科技有限公司 </p>
 * <p>				   All right reserved. 		     </p>
 * 
 * <p>项目名称 ： 	深圳市国省检日常化监管系统         </p>
 * <p>创建者   :	win7 
 * 
 * <p>描   述  :   TrafficAdjustServiceImpl.java for com.pengtu.gsj.service.impl.jsbz    </p>
 * 
 * <p>最后修改 : $: 2017年8月1日-下午4:51:02 v 1.0.0	 win7   $ </p>
 * 
*/

package com.pengtu.gsj.service.impl.jsbz;

import java.util.List;


import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.pengtu.gsj.dao.base.Page;
import com.pengtu.gsj.dao.base.QueryFilter;
import com.pengtu.gsj.dao.jsbz.TrafficAdjustDao;
import com.pengtu.gsj.entity.app.Attachment;
import com.pengtu.gsj.entity.jsbz.TrafficAdjust;
import com.pengtu.gsj.service.jsbz.TrafficAdjustService;
import com.pengtu.gsj.service.system.SystemManageService;

/**
 * 
 * TrafficAdjustServiceImpl
 * 
 * 2017年8月1日 下午4:51:02
 * 
 * @version 1.0.0
 * 
 */
@Service
@Transactional
public class TrafficAdjustServiceImpl implements TrafficAdjustService{
	
	@Autowired
	private TrafficAdjustDao trafficAdjustDao;
	
	@Autowired
	private SystemManageService systemManageService;
	
	
	
	@Override
	public void saveTrafficAdjust(TrafficAdjust trafficAdjust){
		trafficAdjustDao.save(trafficAdjust);
	}
	
	@Override
	public Page<TrafficAdjust> findTrafficAdjust(Page<TrafficAdjust> page, final QueryFilter queryFilter){
		return trafficAdjustDao.findPage(page, queryFilter);
	}
	
	@Override
	public TrafficAdjust getTrafficAdjustById(String id){
		return trafficAdjustDao.get(id);
	}
	
	@Override
	public void  delateTrafficAdjust(TrafficAdjust trafficAdjust){
		if(trafficAdjust.getAttachments() != null){
			for(Attachment attachment : trafficAdjust.getAttachments()){
				systemManageService.deleteAttachment(attachment);
			}
		}
		trafficAdjustDao.delete(trafficAdjust);
	}
	
	@Override
	public List<TrafficAdjust> getTrafficAdjustByStationName(){
		return trafficAdjustDao.getTrafficAdjustByStationName();
	}
	
	/**
	 * 适用：交调管理中新增或者修改时验证 年份+站点 是否已经存在
	 * @param year 当条记录的 年份
	 * @param stationName 当条记录的 检测站名称
	 * @param id 当条记录的id
	 */
	@Override
	public Boolean checkTecYearName(String year, String stationName, String id) {
		//1、如果id不为空的话，如果是不修改（或修改前后一样）返回true，否则按新增操作处理
		if (StringUtils.isNotEmpty(id)) {
			String oldYear = trafficAdjustDao.get(id).getYear();
			String name = trafficAdjustDao.get(id).getStationName();
			if (oldYear.equals(year) && stationName.equals(name)) {
				return true;
			} else {
				return checkSame(year, stationName);
			}
		} else {
			//2、如果id为空时，则用判断方式判断是否存在year的同时存在stationName
			return checkSame(year, stationName);
		}
	}
	
	public Boolean checkSame(String year, String stationName){
		Boolean flag = true;
		if (StringUtils.isEmpty(year) || StringUtils.isEmpty(stationName)) {
			return true;
		} else {
			List<TrafficAdjust> govLists = trafficAdjustDao.findBy("year", year);
			for (TrafficAdjust trafficAdjust : govLists) {
				if (flag == true) {
					flag = stationName.equals(trafficAdjust.getStationName()) ? false : true;
				}
			}
		}
		return flag;
	}
}
